package org.jeecgframework.web.service;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.web.system.pojo.base.CbsInspectionEvaluateEntity;

public interface CbsInspectionEvaluateServiceI extends CommonService{
	
 	public <T> void delete(T entity);
 	
 	public <T> Serializable save(T entity);
 	
 	public <T> void saveOrUpdate(T entity);
 	
 	/**
	 * 默认按钮-sql增强-新增操作
	 * @return
	 */
 	public boolean doAddSql(CbsInspectionEvaluateEntity t);
 	/**
	 * 默认按钮-sql增强-更新操作
	 * @return
	 */
 	public boolean doUpdateSql(CbsInspectionEvaluateEntity t);
 	/**
	 * 默认按钮-sql增强-删除操作
	 * @return
	 */
 	public boolean doDelSql(CbsInspectionEvaluateEntity t);

	/**@author xiul
	 * 2016-9-21 下午2:49:15
	 * Description 客户服务满意度报表 - 第三方满意度
	 * @param year 年份
	 * @param ipCompany 巡检单位
	 * @param egIds 工程师ID
	 */
	public List<List<String>> queryIpEvaluateReportDataOfTp(String year,
			String ipCompany, String egIds);

	/**@author mhg
	 * 2018-6-28
	 * Description 客户服务满意度报表 - 维修第三方满意度
	 * @param year 年份
	 * @param ipCompany 服务单位
	 * @param egIds 工程师ID
	 */
	public List<List<String>> queryIpRepairEvaluateReportDataOfTp(String year,String ipCompany, String egIds);


	/**@author xiul
	 * 2016-9-22 上午10:34:00
	 * Description 客户服务满意度报表 - 对工程师的满意度
     * @param aj
     * @param year 年份
     * @param ipCompany 巡检单位
	 * @param egIds 工程师ID
     */
	public void queryIpEvaluateReportDataOfEg(AjaxJson aj, String year, String ipCompany, String egIds);

	/**@author mhg
	 * 2018-6-28
	 * Description 客户服务满意度报表 - 对维修工程师的满意度
     * @param aj
     * @param year 年份
     * @param ipCompany 服务单位
	 * @param egIds 工程师ID
     */
	public void queryIpRepairEvaluateReportDataOfEg(AjaxJson aj, String year, String ipCompany, String egIds);

	/**
	 * @author xiul
	 * 2016-9-27 下午5:13:32
	 * Description APP - 首页查询登录用户评价相关信息 
	 * @param userRole 登录用户角色
	 */
	public void getUserInspectionEvaluates(String userRole,Map<String, Object> returnMap);

	/**@author xiul
	 * 2016-9-28 上午11:09:47
	 * Description APP - 评分详细页
	 */
	public List<Map<String, Object>> queryUserIes(HttpServletRequest req);

	/**
	 * 巡检评价
	 * @param evalute
	 */
    public void doEvalute(CbsInspectionEvaluateEntity evalute);

	/**@author xiul
	 * 2016-11-14 上午10:10:53
	 * Description 生成一条未评价记录
	 * @param inspectionPlanId 巡检计划id
	 */
	public void createInspectionEvaluate(String inspectionPlanId);

	/**
	 * 服务评价报表 点击数字过来的列表数据查询
	 * @param request
	 * @param dataGrid
	 */
	public void datagridOfIeListOfIeReport(HttpServletRequest request, DataGrid dataGrid);

	/**
	 * 服务评价报表 点击数字过来的列表数据查询
	 * 维修服务
	 * @param request
	 * @param dataGrid
	 */
	public void datagridOfIeListOfIeRepairReport(HttpServletRequest request, DataGrid dataGrid);

	/**
	 * @author xiul
	 * 2017-5-3 上午10:36:34
	 * Description 导出巡检评价
	 */
	public void exportIe(HttpServletRequest request, HttpServletResponse response);

	/**
	 * @author xiul
	 * 2017-5-15 上午11:09:36
	 * Description 服务评价报表 - 点数字跳转的列表页的 详情页 datagrid 数据查询
	 */
	public void queryIeDetialOfIeReportData(HttpServletRequest request,DataGrid dataGrid);

	/**
	 * @author mhg
	 * 2018-6-28
	 * Description 服务评价报表 - 点数字跳转的列表页的 详情页 datagrid 数据查询
     * 维修服务
	 */
	public void queryIeRepairDetialOfIeReportData(HttpServletRequest request,DataGrid dataGrid);

	/**
	 * @author xiul
	 * 2017-5-15 下午2:29:29
	 * Description 服务评价报表 - 点数字跳转的列表页 - 详情页 点工程师名称跳转 datagrid
	 */
	public void queryEgDitailOfIeDetialOfIeReport(HttpServletRequest request,DataGrid dataGrid);
	/**
	 * @author mhg
	 * 2018-6-28
	 * Description 服务评价报表 - 点数字跳转的列表页 - 详情页 点工程师名称跳转 datagrid
     * 维修服务
	 */
	public void queryEgDitailOfIeRepairDetialOfIeReport(HttpServletRequest request,DataGrid dataGrid);


	/**
	 *	判断服务单是否已经有过评价
	 * @param ServiceId
	 * @return
	 */
	public boolean getIsTrue(String ServiceId);

	/**
	 * 判断服务单完工时，是否需要自动创建评价单
	 * @return
	 */
	void assessService(String id);

	/**
	 * <p>
	 *  查询服务评价 datagrid
	 * </p>
	 *
	 * @author X On 2019/8/6 10:39 AM
	 */
    void queryEvaluateData(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid);
}
